package org.lanqiao.tjut.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.lanqiao.tjut.bean.UsersBean;
import org.lanqiao.tjut.bean.UsersBeanA;
import org.lanqiao.tjut.service.ServiceFactory;

public class LoginServlet extends HttpServlet {

	/**
	 * 右键--sourec--Methods 继承
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 对客户端请求进行处理 （可以替代 doget和dopost //doGet 和doPost串联起来处理）
		// 调用Model层进行客户端请求的响应处理
		System.out.println("已经接收到客户端发送过来的请求service。。。。");
		// 接收客户端数据请求时进行编码设置，防止中文乱码
		request.setCharacterEncoding("UTF-8");

		// 使用request的getParameter方法获取前台页面的表单数据
		// 用户名
		String strUserNum = request.getParameter("txtusernum");
		// System.out.println("输入的用户名："+strUserName);
		// 密码
		String strUserPsw = request.getParameter("txtuserpsw");

		// 将表单数据存入到实体对象UsersBean属性中
		UsersBeanA usersBA = new UsersBeanA();
		// UsersBean usersB = (UsersBean)
		// MyUtils.getNewInstance(UsersBean.class);

		usersBA.setUsernum(strUserNum);
		usersBA.setUserpsw(strUserPsw);
		// 登录验证
		List<UsersBeanA> lstUsers = ServiceFactory.getLoginServiceInstance().isLogined(usersBA);

		// 默认登录失败 跳回登录页面
		String strResultPage = "login.jsp";
		// 根据登录验证结果进行页面跳转
		if (lstUsers.size() > 0) {
			// 登录成功
			strResultPage = "logined/logined.jsp";
			/**
			 * 调取List表中的值
             */
			int a = lstUsers.get(0).getUseridebtity();
			String uidebtity = "";
			if (a == 0)
				uidebtity = "管理员";
			if (a == 1)
				uidebtity = "老师";
			if (a == 2)
				uidebtity = "学生";

			String b=lstUsers.get(0).getUsername();
			
			usersBA.setUsername(b);
			usersBA.setUidebtity(uidebtity);
			// 使用session将控制层的数据 传递到前台页面 使用el表达式进行解析、
			// "loginedUsersB" 名字随便起

			request.getSession().setAttribute("loginedUsersBA", usersBA);
		}
		// 页面跳转
		// 使用forward进行
		request.getRequestDispatcher(strResultPage).forward(request, response);
	}

	@Override
	public void destroy() {
		// Servlet销毁时的处理
		super.destroy();
	}

	@Override
	public void init() throws ServletException {
		// servlet初始化时的处理
		super.init();
	}

}
